The demand for high-performance computers and communication devices requires that state-of-the-art networks and network interface devices operate at comparable high-performance levels. The necessary high-performance is provided by network interface cards (NIC) that operate at ever increasing speeds. These network interface cards (NIC) are used in a wide variety of devices, including personal computers, switches, routers, hubs, bridges, and the like. Network interface cards operating at 10 Mbps (i.e., 10BaseT) over Category-3 (CAT3) wires and network cards operating at 100 Mbps (i.e., 100BaseT) over Category-5 (CAT5) are in common use in Ethernet local area network (LAN) environments. Additionally, network interface cards that operate at 1 Gbps (i.e., 1000BaseT) are now coming into use in Gigabit Ethernet LANs.
U.S. patent application Ser. Nos. 09/713,389 and 09/713,643, incorporated by reference above, disclose reprogrammable microcontroller architectures for controlling the physical layers of network interface cards. In the microcontrollers disclosed therein, the embedded control program of the internal ROMs can be augmented, patched around, and even replaced by new control program code that is downloaded into internal RAM via a management interface. Although the systems and methods disclosed in application Ser. Nos. 09/713,389 and 09/713,643 are important and useful features for future code updates, debugging and diagnostics, the disclosed systems and apparatuses require an external host personal computer (PC) to control the replacement program downloading operation. In a non-PC environment, such as a router or switch, an alternative mechanism is required to download a replacement program into the multiple interface cards of the router, switch, hub, bridge, or the like.
There is therefore a need in the art for an improved system for upgrading or modifying the embedded control program in a plurality of network interface cards. In particular, there is a need for a reprogramming interface circuit that can simultaneously reprogram a plurality of network interface cards. More particularly, there is a need for a fault-tolerant reprogramming interface circuit that can simultaneously reprogram a plurality of network interface cards even if one or more of the interface cards is malfunctioning.